home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / SpringLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.9 KB  |  242 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Insets;
  7. import java.awt.LayoutManager2;
  8. import java.util.Collections;
  9. import java.util.HashMap;
  10. import java.util.HashSet;
  11. import java.util.List;
  12. import java.util.Map;
  13. import java.util.Set;
  14.  
  15. public class SpringLayout implements LayoutManager2 {
  16.    private Map componentConstraints = new HashMap();
  17.    private Spring cyclicReference = Spring.constant(Integer.MIN_VALUE);
  18.    private Set cyclicSprings;
  19.    private Set acyclicSprings;
  20.    public static final String NORTH = "North";
  21.    public static final String SOUTH = "South";
  22.    public static final String EAST = "East";
  23.    public static final String WEST = "West";
  24.    public static final String HORIZONTAL_CENTER = "HorizontalCenter";
  25.    public static final String VERTICAL_CENTER = "VerticalCenter";
  26.    public static final String BASELINE = "Baseline";
  27.    public static final String WIDTH = "Width";
  28.    public static final String HEIGHT = "Height";
  29.    private static String[] ALL_HORIZONTAL = new String[]{"West", "Width", "East", "HorizontalCenter"};
  30.    private static String[] ALL_VERTICAL = new String[]{"North", "Height", "South", "VerticalCenter", "Baseline"};
  31.  
  32.    private void resetCyclicStatuses() {
  33.       this.cyclicSprings = new HashSet();
  34.       this.acyclicSprings = new HashSet();
  35.    }
  36.  
  37.    private void setParent(Container var1) {
  38.       this.resetCyclicStatuses();
  39.       Constraints var2 = this.getConstraints(var1);
  40.       var2.setX(Spring.constant(0));
  41.       var2.setY(Spring.constant(0));
  42.       Spring var3 = var2.getWidth();
  43.       if (var3 instanceof Spring.WidthSpring && ((Spring.WidthSpring)var3).c == var1) {
  44.          var2.setWidth(Spring.constant(0, 0, Integer.MAX_VALUE));
  45.       }
  46.  
  47.       Spring var4 = var2.getHeight();
  48.       if (var4 instanceof Spring.HeightSpring && ((Spring.HeightSpring)var4).c == var1) {
  49.          var2.setHeight(Spring.constant(0, 0, Integer.MAX_VALUE));
  50.       }
  51.  
  52.    }
  53.  
  54.    boolean isCyclic(Spring var1) {
  55.       if (var1 == null) {
  56.          return false;
  57.       } else if (this.cyclicSprings.contains(var1)) {
  58.          return true;
  59.       } else if (this.acyclicSprings.contains(var1)) {
  60.          return false;
  61.       } else {
  62.          this.cyclicSprings.add(var1);
  63.          boolean var2 = var1.isCyclic(this);
  64.          if (!var2) {
  65.             this.acyclicSprings.add(var1);
  66.             this.cyclicSprings.remove(var1);
  67.          } else {
  68.             System.err.println(var1 + " is cyclic. ");
  69.          }
  70.  
  71.          return var2;
  72.       }
  73.    }
  74.  
  75.    private Spring abandonCycles(Spring var1) {
  76.       return this.isCyclic(var1) ? this.cyclicReference : var1;
  77.    }
  78.  
  79.    public void addLayoutComponent(String var1, Component var2) {
  80.    }
  81.  
  82.    public void removeLayoutComponent(Component var1) {
  83.       this.componentConstraints.remove(var1);
  84.    }
  85.  
  86.    private static Dimension addInsets(int var0, int var1, Container var2) {
  87.       Insets var3 = var2.getInsets();
  88.       return new Dimension(var0 + var3.left + var3.right, var1 + var3.top + var3.bottom);
  89.    }
  90.  
  91.    public Dimension minimumLayoutSize(Container var1) {
  92.       this.setParent(var1);
  93.       Constraints var2 = this.getConstraints(var1);
  94.       return addInsets(this.abandonCycles(var2.getWidth()).getMinimumValue(), this.abandonCycles(var2.getHeight()).getMinimumValue(), var1);
  95.    }
  96.  
  97.    public Dimension preferredLayoutSize(Container var1) {
  98.       this.setParent(var1);
  99.       Constraints var2 = this.getConstraints(var1);
  100.       return addInsets(this.abandonCycles(var2.getWidth()).getPreferredValue(), this.abandonCycles(var2.getHeight()).getPreferredValue(), var1);
  101.    }
  102.  
  103.    public Dimension maximumLayoutSize(Container var1) {
  104.       this.setParent(var1);
  105.       Constraints var2 = this.getConstraints(var1);
  106.       return addInsets(this.abandonCycles(var2.getWidth()).getMaximumValue(), this.abandonCycles(var2.getHeight()).getMaximumValue(), var1);
  107.    }
  108.  
  109.    public void addLayoutComponent(Component var1, Object var2) {
  110.       if (var2 instanceof Constraints) {
  111.          this.putConstraints(var1, (Constraints)var2);
  112.       }
  113.  
  114.    }
  115.  
  116.    public float getLayoutAlignmentX(Container var1) {
  117.       return 0.5F;
  118.    }
  119.  
  120.    public float getLayoutAlignmentY(Container var1) {
  121.       return 0.5F;
  122.    }
  123.  
  124.    public void invalidateLayout(Container var1) {
  125.    }
  126.  
  127.    public void putConstraint(String var1, Component var2, int var3, String var4, Component var5) {
  128.       this.putConstraint(var1, var2, Spring.constant(var3), var4, var5);
  129.    }
  130.  
  131.    public void putConstraint(String var1, Component var2, Spring var3, String var4, Component var5) {
  132.       this.putConstraint(var1, var2, Spring.sum(var3, this.getConstraint(var4, var5)));
  133.    }
  134.  
  135.    private void putConstraint(String var1, Component var2, Spring var3) {
  136.       if (var3 != null) {
  137.          this.getConstraints(var2).setConstraint(var1, var3);
  138.       }
  139.  
  140.    }
  141.  
  142.    private Constraints applyDefaults(Component var1, Constraints var2) {
  143.       if (var2 == null) {
  144.          var2 = new Constraints();
  145.       }
  146.  
  147.       if (javax.swing.SpringLayout.Constraints.access$400(var2) == null) {
  148.          javax.swing.SpringLayout.Constraints.access$402(var2, var1);
  149.       }
  150.  
  151.       if (javax.swing.SpringLayout.Constraints.access$500(var2).size() < 2) {
  152.          this.applyDefaults(var2, "West", Spring.constant(0), "Width", Spring.width(var1), javax.swing.SpringLayout.Constraints.access$500(var2));
  153.       }
  154.  
  155.       if (javax.swing.SpringLayout.Constraints.access$600(var2).size() < 2) {
  156.          this.applyDefaults(var2, "North", Spring.constant(0), "Height", Spring.height(var1), javax.swing.SpringLayout.Constraints.access$600(var2));
  157.       }
  158.  
  159.       return var2;
  160.    }
  161.  
  162.    private void applyDefaults(Constraints var1, String var2, Spring var3, String var4, Spring var5, List<String> var6) {
  163.       if (var6.size() == 0) {
  164.          var1.setConstraint(var2, var3);
  165.          var1.setConstraint(var4, var5);
  166.       } else {
  167.          if (var1.getConstraint(var4) == null) {
  168.             var1.setConstraint(var4, var5);
  169.          } else {
  170.             var1.setConstraint(var2, var3);
  171.          }
  172.  
  173.          Collections.rotate(var6, 1);
  174.       }
  175.  
  176.    }
  177.  
  178.    private void putConstraints(Component var1, Constraints var2) {
  179.       this.componentConstraints.put(var1, this.applyDefaults(var1, var2));
  180.    }
  181.  
  182.    public Constraints getConstraints(Component var1) {
  183.       Constraints var2 = (Constraints)this.componentConstraints.get(var1);
  184.       if (var2 == null) {
  185.          if (var1 instanceof JComponent) {
  186.             Object var3 = ((JComponent)var1).getClientProperty(SpringLayout.class);
  187.             if (var3 instanceof Constraints) {
  188.                return this.applyDefaults(var1, (Constraints)var3);
  189.             }
  190.          }
  191.  
  192.          var2 = new Constraints();
  193.          this.putConstraints(var1, var2);
  194.       }
  195.  
  196.       return var2;
  197.    }
  198.  
  199.    public Spring getConstraint(String var1, Component var2) {
  200.       var1 = var1.intern();
  201.       return new SpringProxy(var1, var2, this);
  202.    }
  203.  
  204.    public void layoutContainer(Container var1) {
  205.       this.setParent(var1);
  206.       int var2 = var1.getComponentCount();
  207.       this.getConstraints(var1).reset();
  208.  
  209.       for(int var3 = 0; var3 < var2; ++var3) {
  210.          this.getConstraints(var1.getComponent(var3)).reset();
  211.       }
  212.  
  213.       Insets var12 = var1.getInsets();
  214.       Constraints var4 = this.getConstraints(var1);
  215.       this.abandonCycles(var4.getX()).setValue(0);
  216.       this.abandonCycles(var4.getY()).setValue(0);
  217.       this.abandonCycles(var4.getWidth()).setValue(var1.getWidth() - var12.left - var12.right);
  218.       this.abandonCycles(var4.getHeight()).setValue(var1.getHeight() - var12.top - var12.bottom);
  219.  
  220.       for(int var5 = 0; var5 < var2; ++var5) {
  221.          Component var6 = var1.getComponent(var5);
  222.          Constraints var7 = this.getConstraints(var6);
  223.          int var8 = this.abandonCycles(var7.getX()).getValue();
  224.          int var9 = this.abandonCycles(var7.getY()).getValue();
  225.          int var10 = this.abandonCycles(var7.getWidth()).getValue();
  226.          int var11 = this.abandonCycles(var7.getHeight()).getValue();
  227.          var6.setBounds(var12.left + var8, var12.top + var9, var10, var11);
  228.       }
  229.  
  230.    }
  231.  
  232.    // $FF: synthetic method
  233.    static String[] access$000() {
  234.       return ALL_HORIZONTAL;
  235.    }
  236.  
  237.    // $FF: synthetic method
  238.    static String[] access$100() {
  239.       return ALL_VERTICAL;
  240.    }
  241. }
  242.